package com.xy.consumer;

import com.xy.api.HelloRpc;
import com.xy.core.ReferenceConfig;
import com.xy.core.RegistryConfig;
import com.xy.core.RpcBootstrap;

public class RpcConsumerApplication {

    public static void main(String[] args) {

        // 想尽一切办法获取代理对象，使用 ReferenceConfig 进行封装
        // reference中一定有生成代理的模版方法，get()
        ReferenceConfig<HelloRpc> reference = new ReferenceConfig<>();
        reference.setInterface(HelloRpc.class);

        // 代理做了些什么
        // 1、连接注册中心
        // 2、拉去服务列表
        // 3、选择一个服务并建立连接
        // 4、发送请求，携带一些信息（接口名，参数列表，方法的名字）
        RpcBootstrap.getInstance()
                .application("rpc-consumer")
                // 配置注册中心
                .registry(new RegistryConfig("127.0.0.1", 2181))
                .reference(reference);


        HelloRpc helloRpc = reference.get();

        helloRpc.hello("rpc真好使");


    }

}